package dao;

import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import model.Libro;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class LibrosDaoJpa implements LibrosDao {

	private EntityManager em;

    @PersistenceContext
    public void setEntityManager(EntityManager em) {
        this.em = em;
    }
	
	public void addLibro(Libro libro) {
		em.persist(libro);
	}

	public Libro getLibro(Libro libro) {
		return (Libro) em.find(Libro.class, libro.getId());
	}

	public Collection getLibros() {
		return em.createQuery("select lib from Libro lib").getResultList();
	}

	public void removeLibro(Libro libro) {
		em.remove(libro);
		em.flush();
	}
	
	public Libro updateLibro(Libro libro) {
		return em.merge(libro);
	}
}
